import java.util.*;

/**
 * The class, which extend the super class Publication, represent a Technical Report.
 *
 */
public class TechnicalReport extends Publications {
	private String institution;
	/**
	 * Construct a TechnicalReport object with the specified list of author, title, 
     * year of publication, ISSN code, ISBN code and the institution name.
     * The ISSN code must be a numeric string of 8 character.
     * The ISBN code must be a numeric string of 13 character
     * ISSN and ISBN code can also be initialized at null.
     * 
	 * @param theAuthors the list of author object.
     * @param aTitle the title of technical report.
     * @param aYear the year of publication.
     * @param aIssn the ISSN code. 
     * @param aIsbn the ISBN code.
	 * @param anInstitution the name of the school.
	 */
	public TechnicalReport(List<Author> theAuthors, String aTitle, int aYear,
			String aIssn, String aIsbn, String anInstitution) {
		super(theAuthors, aTitle, aYear, aIssn, aIsbn);
		if (!anInstitution.equals(""))
			this.institution = anInstitution;
		else 
			throw new IllegalArgumentException();
	}

	@Override
	/**
	 * Return the string representation of the technical report.
	 * 
	 * @return the string representation.
	 */
	public String toString() {
		return "TechnicalReport[" + "institution=" + institution + ", "
				+ super.toString() + "]";
	}
	/**
	 * Return the institution name.	
	 * 
	 * @return the name.
	 */
	public String getInstitution() {
		return institution;
	}

}
